const joi = require('joi')

// 定义用户名和密码的验证规则
const name = joi.string().alphanum().min(1).max(10).required()
const password = joi
  .string()
  .pattern(/^[\S]{6,12}$/)
  .required()

//  验证表单数据
const id = joi.number().integer().min(1).required()
const nickname = joi.string().required()
const email = joi.string().email().required()

// 头像  dataUri() 指的是如下格式的字符串数据：
// 
const avatar = joi.string().dataUri().required()

// 定义验证注册和登录表单数据的规则对象
exports.reg_login_schema = {
  body: {
    name,
    password,
  },
}

//  更新验证规则
exports.updata_userInfo_schema = {
 body:{
    id,
    nickname,
    email,
 } 
}

// 验证规则对象 - 重置密码
exports.update_userInfo_pwd = {
  body:{
    // 使用 password 这个规则，验证 req.body.oldPwd 的值
    oldPwd: password,
    // 使用 joi.not(joi.ref('oldPwd')).concat(password) 规则，验证 req.body.newPwd 的值
    // 1. joi.ref('oldPwd') 表示 newPwd 的值必须和 oldPwd 的值保持一致
    // 2. joi.not(joi.ref('oldPwd')) 表示 newPwd 的值不能等于 oldPwd 的值
    // 3. .concat() 用于合并 joi.not(joi.ref('oldPwd')) 和 password 这两条验证规则
    newPwd: joi.not(joi.ref('oldPwd')).concat(password),
  },
}

//  更换头像的规则
exports.updata_userInfo_PIC = {
  body:{
    avatar,
  },
}